const api = require('../../utils/api.js');
const storage = require('../../utils/storage.js');
const imageUtil = require('../../utils/image.js');

Page({
  data: {
    activityId: null,
    activityTitle: '',
    participants: [],
    loading: true,
    error: null,
    isEmpty: false
  },

  onLoad(options) {
    console.log('🎯 =============== 活动管理页面加载 ===============');
    console.log('📦 接收到的参数:', options);

    const activityId = options.id || options.activityId;
    const activityTitle = options.title || '活动管理';

    if (activityId) {
      console.log('✅ 活动ID:', activityId);
      console.log('✅ 活动标题:', activityTitle);
      
      this.setData({
        activityId: activityId,
        activityTitle: activityTitle
      });

      // 加载参与者数据
      this.loadParticipants();
    } else {
      console.error('❌ 缺少活动ID参数');
      this.setData({
        loading: false,
        error: '缺少活动ID参数'
      });

      wx.showToast({
        title: '参数错误',
        icon: 'none'
      });
    }
  },

  onShow() {
    // 🔔 自动初始化通知组件
    const app = getApp();
    app.autoInitNotification();
  },

  /**
   * 加载活动参与者（与 Flutter 保持一致）
   */
  loadParticipants() {
    console.log('🔄 开始加载活动参与者数据');
    console.log('📝 活动ID:', this.data.activityId);

    this.setData({
      loading: true,
      error: null
    });

    // 调用API获取参与者列表（与 Flutter 保持一致）
    api.getActivityParticipants(this.data.activityId)
      .then(response => {
        console.log('✅ 参与者数据加载成功:', response);
        console.log('📊 响应结构:', {
          status: response.status,
          message: response.message,
          hasData: !!response.data,
          dataKeys: response.data ? Object.keys(response.data) : []
        });

        if (response.status === 'success' && response.data) {
          // 🔥 修复：正确处理 Flutter 返回的数据结构
          const participants = response.data.participants || [];
          const total = response.data.total || 0;
          
          console.log('👥 参与者总数:', total);
          console.log('📋 参与者列表长度:', participants.length);
          
          // 格式化参与者数据（与 Flutter 保持一致）
          const formattedParticipants = participants.map(p => {
            console.log('🔍 处理参与者:', p);
            return {
              id: p.id,
              userId: p.userId,
              username: p.username || `用户${p.userId}`,
              userAvatarUrl: imageUtil.processAvatar(p.userAvatarUrl || 'https://app.playtruly.cn/system/avatar.jpg'), // 🔥 使用图片工具类处理头像
              userSignature: p.userSignature || '',
              joinTime: p.joinTime || '',
              participantStatus: Array.isArray(p.participantStatus) ? p.participantStatus : [p.participantStatus]
            };
          });

          console.log('📊 格式化后的参与者数量:', formattedParticipants.length);

          this.setData({
            participants: formattedParticipants,
            loading: false,
            isEmpty: formattedParticipants.length === 0
          });
          
          console.log('✅ 参与者数据设置完成');
        } else {
          throw new Error(response.message || '加载失败');
        }
      })
      .catch(error => {
        console.error('❌ 参与者数据加载失败:', error);
        console.error('❌ 错误详情:', {
          message: error.message,
          stack: error.stack
        });
        
        this.setData({
          loading: false,
          error: error.message || '加载失败，请重试',
          isEmpty: true
        });

        wx.showToast({
          title: error.message || '加载失败',
          icon: 'none',
          duration: 2000
        });
      });
  },

  /**
   * 删除参与者
   */
  removeParticipant(e) {
    const { userid, username } = e.currentTarget.dataset;
    
    console.log('🗑️ 准备删除参与者:', username, '(ID:', userid, ')');

    // 显示确认对话框
    wx.showModal({
      title: '移除参与者',
      content: `确定要从活动中移除「${username}」吗？`,
      confirmText: '确定移除',
      confirmColor: '#D32F2F',
      cancelText: '取消',
      success: (res) => {
        if (res.confirm) {
          console.log('✅ 用户确认删除');
          this.deleteParticipant(userid, username);
        } else {
          console.log('❌ 用户取消删除');
        }
      }
    });
  },

  /**
   * 执行删除参与者操作
   */
  deleteParticipant(userId, username) {
    console.log('🔥 执行删除操作, 用户ID:', userId);

    wx.showLoading({ title: '移除中...' });

    // 调用删除API
    api.deleteActivityParticipant(this.data.activityId, userId)
      .then(response => {
        console.log('✅ 删除参与者成功:', response);
        
        wx.hideLoading();

        if (response.status === 'success') {
          wx.showToast({
            title: '参与者已成功移除',
            icon: 'success',
            duration: 2000
          });

          // 从本地列表中移除
          const updatedParticipants = this.data.participants.filter(p => p.userId !== userId);
          
          this.setData({
            participants: updatedParticipants,
            isEmpty: updatedParticipants.length === 0
          });

          console.log('📝 更新后的参与者数量:', updatedParticipants.length);
        } else {
          throw new Error(response.message || '删除失败');
        }
      })
      .catch(error => {
        console.error('❌ 删除参与者失败:', error);
        
        wx.hideLoading();
        
        wx.showToast({
          title: error.message || '移除失败，请重试',
          icon: 'none',
          duration: 2000
        });
      });
  },

  /**
   * 重新加载
   */
  onRetry() {
    this.loadParticipants();
  },

  /**
   * 返回
   */
  goBack() {
    wx.navigateBack();
  }
});

